from transformers import AutoModelForCausalLM, AutoTokenizer
import tempfile
import time
import sys

model_path = sys.argv[1]
device = "cuda" # the device to load the model onto

model = AutoModelForCausalLM.from_pretrained(
    model_path,
    torch_dtype="auto",
).cuda()
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = model.eval()
str_in = '''第一个第二个要是说怎么能让这个摘要可以有收门的东西来逐步让他更好，就第一部分是说我们做盲分，就我能分出 apc是谁，这个这是第一步。然后第二步的话，其实我不知道未来这个东西你能能不能有学习性的东西，因为会议室是一个开放的。就是今天可能我来，那明天有可能我还会来，我会议室在这个 t这个场景里面，我是不是标注了 abc是谁了？那我再开会的时候，我就不需要按照再去分这个 abc了。然后这是这是第二部分。然后第三部分的话，现在其实我是在想，就我在构思那个整个会议纪要的这个流程。讲了一个。暂表社群。就是 pc未来 pc里面我们也会跑，就我会跑，就是那个会议室里面我们也放一个传集也会跑，但其实我是想把这个会议纪要东西操作分了一，因为这开会要不就在 pc，要不在会议室，我能不能让 pc和这个会议室的设备能联动起来？那我想话，我植入对。哪怕我做一个未议知库也好，然后他把这些内容都归属到 pc里面来辅助，让我成为一个会议的专属的一个使用，就是来屏么，让我下次开会也好，回步会议也好，能让它更好一点。明天早动。你让我这要随去复印也好，能让他。这是第二部，然后另外一部分的话就想让它有一些实时交互的东西，因为现在就是我们转写完以后，那这边摘要我们基本上就是说这个会议结束以后，大概一分钟也好，五分钟也好，还是有摘要的东西，就是这块希望能有一些实时适用交互。然后。因为要修改内容会有两部分吧，第一部分是说假设我这个人真的就是开会和走神了，我我就想去 su培养之前每个人说了一些什么话，那总结一些前面几分钟讨论的内容。驾驶。我希望它有一个实时的交互，好，那而不是合多这种对对，其实就是类似小动作这种这种场景，然后习本上会覆盖到这些了，就是他的摘要，可能都形式，就是有可能我去针对某个人某个方面词。是。或者是我会针对某个议题去做一些实施的这些明白就在些交互的部能，就是这些交互的功能，基于端测等等上。对，其实我主的目的是说我不想做成科大 v和森密十这样插一个小盒子堆到这，然后他有个 pad也好。就是会完了会把那个东西丢出来，我希望是说，除了这部分内容以后，Pc因为大家开会会在 pc对进点对，而且联想核心的也是 pc我能不能让 pc和这个设备之间产生一个产 ppc，跟他如果有对有些因为我 pc上有智会。麻烦挺牛不？个社之间产？展 pc有一点对吧？但这个我有点注意。就是我们现在在做的这个智慧的问你希望是说他们之间有一些熟质关系性 ok大概什么是种平板，这种平板，这种带能就是交互的设备呢，和 pc类还是这样，就是它其实就是一个合架，说我未来是完了，因为现在这个模型最终比较好的一个载点。家了，上的提线。对。我有可能是一个 ty的解节，有可能是我自己在定义一个盒子是一个叉八架构的，然后或者是或者是 arm架构，我就把它放进去，放进去以后，那我可能有个 pad pad实现一些基本装置，就比如说我，我什么时候要记入什么时候要提。电是。希望只是这个牌说些我应用的并不用对吧，我希望你都可以连上去，因我希望是这个 pc个笔记，这个投资产没关系。这是一个阶本上，但我希望是说这个 p可能会受限，已可用了 b90好多方面都可以上去。对，我希望是说这个 pc到这个笔记到了这个会议室后，Pc合影对这个盒子产关就是大家谁想去发这些数据都可以，就是我会理结束以后肯定这些数据，我我考虑隐私，我，我会把它。就清除掉，然后但是在会议中，这个会议纪要应该是属于每个人，所有人大家都可以去快速的去获取屏蔽，就是蓝牙这种，这个这个到时候可以去探讨一下就是。对对。是连一个平板？本本地变量也要考虑。就是因为我 pc上也会好一个客户端是接找一个后台。App最我做这打个字，小 a牙同学需我问他，唉，对，其实就是这这种方式，但具体说蓝牙那种方式，我不是特别推荐，是用蓝牙，因为你想。是来拿你想天种离线的？一般他对这种蓝牙 wifi go会 con我这一问就是，如果是离线场景的话，它在是个平板一记本，它怎么能在笔记本上画一个 epp客户端。把你想问的小数问题发给他，其实两种交互，其实第一种，你假设是说这个盒子里面我拷一个 web soo是吧，当时我我通过这个这个这个客户 pc的客户端，那两个交互深说我们可以探索些提上，就我首先笔记本到了，到了会议室要先发现它。但那方但经。我怎么能快速发现它，然后发现以后再给他做个交互，像就是这有点像这种共享屏幕的时候，那个自动组对也也类，也是跟那个投屏就是音会议投屏上引导设备到到上来，像这个会会很是一个问题，就是。这个。也类似，也类似，跟那个投屏就是腾讯会议投屏寻找设备的找到设备。
阅读上述会议纪要，给以上内容做个摘要，不要出现原文以外的内容，大约150字。
'''
str_in = '''所有人大家都可以去快速的去获取屏蔽，就是蓝牙这种，这个这个到时候可以去探讨一下就是。对对。是连一个平板？本本地变量也要考虑。就是因为我 pc上也会好一个客户端是接找一个后台。App最我做这打个字，小 a牙同学需我问他，唉，对，其实就是这这种方式，但具体说蓝牙那种方式，我不是特别推荐，是用蓝牙，因为你想 。是来拿你想天种离线的？一般他对这种蓝牙 wifi go会 con我这一问就是，如果是离线场景的话，它在是个平板一记本，它怎么能在笔记本上画一个 epp客户端。把你想问的小数问题发给他，其实两种交互，其实第一种，你假设是说这个盒子里面我拷一个 web soo是吧，当时我我通过这个这个这个客户 pc的客户端，那两个交互深说 我们可以探索些提上，就我首先笔记本到了，到了会议室要先发现它。但那方但经。我怎么能快速发现它，然后发现以后再给他做个交互，像就是这有点像这种共享屏幕的时候，那个自动组对也也类，也是跟那个投屏就是音会议投屏上引导设备到到上来，像这个会会很是一个问题，就是。这个。也类似，也类似，跟那个投屏就是腾讯会议投屏寻找设备的找到设备。
阅读上述会议纪要，给以上内容做个摘要，不要出现原文以外的内容，大约150字。'''

import pdb

while True:
    print("请输入多行内容，结束输入请按 Ctrl+D:")
    prompt = sys.stdin.read()
    #prompt = str_in
    print("推理中。。。。。")

    messages = [
#        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": prompt}
    ]
    text = tokenizer.apply_chat_template(
        messages,
        tokenize=False,
        add_generation_prompt=True
    )
    model_inputs = tokenizer([text], return_tensors="pt").to(device)

    generated_ids = model.generate(
        model_inputs.input_ids,
        max_new_tokens=4096,
        do_sample=False,
        repetition_penalty=1.05
    )
    generated_ids = [
        output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
    ]

    response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
    print("模型响应：")
    print(response)

    time.sleep(1)
